package baseObject;

public interface IBall extends IRectObj {

	/**
	 * Permet de spécifier le sens de déplacement en horizontal et vertical.
	 * @param deltaX : 1 pour vers le droite, -1 pour vers la gauche
	 * @param deltaY : 1 pour vers le bas, -1 pour vers le haut
	 */
	public void setDirection(int deltaX,int deltaY);
	
	/**
	 * Inverse le sens de déplacement en horizontal ou en vertical.
	 * @param inX : spécifie si on doit inverser horizontalement
	 * @param inY : spécifie si on doit inverser verticalement
	 * @return : rien.
	 */
	public void invertDirection(boolean inX,boolean inY);

	/**
	 * Fais bouger la balle au bon endroit en fonction de la vitesse courante
	 * et des coordonnées courantes.
	 */
	public void move();
	
	/**
	 * Retourne le sens de déplacement en X.
	 * @return -1 pour "vers la gauche", +1 pour "vers la droite"
	 */
	public int getDeltaX() ;

	/**
	 * Retourne le sens de déplacement en Y.
	 * @return -1 pour "vers le haut", et +1 pour "vers le bas".
	 */
	public int getDeltaY();

	/**
	 * Renvoi la vitesse courante de la balle.
	 * @return la vitesse
	 */
	public int getSpeed();

	/**
	 * Modifie la vitesse courante de la balle.
	 */
	public void setSpeed(int speed);

}
